# 注册实例页面,3个表单的注册操作
# 注册页面的select下拉练习
# 注册页面的alert练习

from base import By, webdriver, sleep
import os
from selenium.webdriver.support.ui import Select

# 准备注册信息
userinfo = {'account': '123', 'password': '123',
            'phone': '123', 'email': '123@qq.com'}

driver = webdriver.Chrome()
driver.maximize_window()
# 提交注册实例地址
url = 'file:///' + os.path.abspath('html') + '/注册实例.html'
driver.get(url)
sleep(1)
# 主注册frame
# 定位账号,密码,电话,邮箱的位置并输入信息
# 找到账号输入框,输入账号
driver.find_element(By.ID, 'user').send_keys(userinfo['account'])
# 找到密码输入框,输入密码
driver.find_element(By.ID, 'password').send_keys(userinfo['password'])
# 找到电话输入框,输入手机号
driver.find_element(By.ID, 'tel').send_keys(userinfo['phone'])
# 找到邮箱输入框,输入邮箱
driver.find_element(By.ID, 'email').send_keys(userinfo['email'])
sleep(2)
# 定位注册用户提交按钮,并点击
driver.find_element(By.XPATH, '//*[@id="zc"]/fieldset/button').click()
sleep(2)

# select下拉练习
# 定位下拉选择框
s1 = driver.find_element(By.ID, 'select')
select = Select(s1)  # 创建下拉选择对象
# 使用select对象方法,通过文本选择option选项
select.select_by_visible_text('上海')
sleep(2)

# alert弹窗练习
# 定位alert按钮,并点击
driver.find_element(By.ID, 'alert').click()
sleep(2)
# 切换到弹窗
alert = driver.switch_to.alert
alert.accept()  # 确认弹窗,退出弹窗
sleep(2)

# A注册frame
# 切换iframe到注册用户A
driver.switch_to.frame('idframe1')
# 定位账号,密码,电话,邮箱的位置并输入信息
# 找到账号A输入框,输入账号
driver.find_element(By.ID, 'userA').send_keys(userinfo['account'])
# 找到密码A输入框,输入密码
driver.find_element(By.ID, 'passwordA').send_keys(userinfo['password'])
# 找到电话A输入框,输入手机号
driver.find_element(By.ID, 'telA').send_keys(userinfo['phone'])
# 找到邮箱A输入框,输入邮箱
driver.find_element(By.ID, 'emailA').send_keys(userinfo['email'])
sleep(2)
# 定位注册用户A提交按钮,并点击
driver.find_element(By.XPATH, '//*[@id="zc"]/fieldset/button').click()
sleep(2)

# select下拉练习
# 定位下拉选择框
s2 = driver.find_element(By.ID, 'selectA')
select = Select(s2)  # 创建下拉选择对象
# 使用select对象方法,通过文本选择option选项
select.select_by_visible_text('A上海')
sleep(2)

# alert弹窗练习
# 定位alert按钮,并点击
driver.find_element(By.ID, 'alerta').click()
sleep(2)
# 切换到弹窗
alert = driver.switch_to.alert
alert.accept()  # 确认弹窗,退出弹窗
sleep(2)

# B注册frame
# 切换到父级
driver.switch_to.parent_frame()
# 切换iframe到注册用户B
driver.switch_to.frame('myframe2')
# 定位账号,密码,电话,邮箱的位置并输入信息
# 找到账号B输入框,输入账号
driver.find_element(By.ID, 'userB').send_keys(userinfo['account'])
# 找到密码B输入框,输入密码
driver.find_element(By.ID, 'passwordB').send_keys(userinfo['password'])
# 找到电话B输入框,输入手机号
driver.find_element(By.ID, 'telB').send_keys(userinfo['phone'])
# 找到邮箱B输入框,输入邮箱
driver.find_element(By.ID, 'emailB').send_keys(userinfo['email'])
sleep(2)
# 定位注册用户A提交按钮,并点击
driver.find_element(By.XPATH, '//*[@id="zc"]/fieldset/button').click()

# select下拉练习
# 定位下拉选择框
s3 = driver.find_element(By.ID, 'selectB')
select = Select(s3)  # 创建下拉选择对象
# 使用select对象方法,通过文本选择option选项
select.select_by_visible_text('上海B')
sleep(2)

# alert弹窗练习
# 定位alert按钮,并点击
driver.find_element(By.ID, 'alertB').click()
sleep(2)
# 切换到弹窗
alert = driver.switch_to.alert
alert.accept()  # 确认弹窗,退出弹窗

# 退出浏览器
sleep(3)
driver.quit()
